#include <bits/stdc++.h>
using namespace std;

// class Solution {
// public:
//     string solve(string s, string t) {
//         string res = "";
//         if(s.empty() || t.empty()) return s + t; 
//         reverse(s.begin(), s.end());
//         reverse(t.begin(), t.end());
//         int i = 0, carry = 0, a, b, remain;
//         while(i <= s.size() || i <= t.size()) {
//             if(i < s.size()) {
//                 a = s[i] - '0';
//             } else {
//                 a = 0;
//             }
//             if(i < t.size()) {
//                 b = t[i] - '0';
//             } else {
//                 b = 0;
//             }
//             remain = (a + b + carry) % 10;
//             res += to_string(remain);
//             carry = (a + b + carry) / 10;
//             i++;
//         }
//         reverse(res.begin(), res.end());
//         if(res[0] == '0') res = res.substr(1);
//         return res;
//     }
// };

class Solution {
public:
    string solve(string s, string t) {
        string res;
        int i = s.size() - 1, j = t.size() - 1, remain = 0;
        while(i >= 0 || j >= 0 || remain) {
            if(i >= 0) remain += s[i--] - '0';
            if(j >= 0) remain += t[j--] - '0';
            res += remain % 10 + '0';
            remain /= 10;
        }
        reverse(res.begin(), res.end());
        return res;
    }
};